package com.rzcode.coinex.kernel.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 充币记录
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "member_deposit")
public class MemberDeposit {
    /**
     * 存款记录ID，主键，自动生成的唯一标识。
     */
    @ApiModelProperty(value = "存款记录ID", required = true, example = "1")
    private Long id;

    /**
     * 会员ID，存款所属的会员标识。
     */
    @ApiModelProperty(value = "会员ID", required = true, example = "1")
    private Long memberId;

    /**
     * 存款金额，会员存入的金额，精确到小数点后8位。
     */
    @ApiModelProperty(value = "存款金额", required = true, example = "100.00000000")
    private BigDecimal amount;

    /**
     * 单位，存款的货币单位，如BTC、ETH等。
     */
    @ApiModelProperty(value = "单位", required = true, example = "BTC")
    private String unit;

    /**
     * 创建时间，记录存款创建的时间戳。
     */
    @ApiModelProperty(value = "创建时间", example = "2023-01-01 12:00:00")
    private LocalDateTime createTime;

    /**
     * 交易ID，区块链上的交易哈希值。
     */
    @ApiModelProperty(value = "交易ID", required = true, example = "0x123456789abcdef...")
    private String txId;

    /**
     * 地址，存款时使用的钱包地址。
     */
    private String address;

    /**
     * 用户名，会员的用户名，非数据库字段，用于展示。
     */
    private String username;
}
